package com.ibeeking.gmc.global.g.rest.service;

import com.ibeeking.found.common.entity.CurrentUser;
import com.ibeeking.gmc.global.api.common.param.ApprovalDataAuthParam;
import com.ibeeking.gmc.global.api.common.param.TenantDataAuthParam;
import com.ibeeking.gmc.global.service.common.vo.TenantDataAuthVO;

import java.util.List;

/**
 * @ClassName ITenantDataAuthService
 * @Description
 * @Author ibeeking
 * @Date 2021-05-21 9:48
 **/
public interface ITenantDataAuthService {

    /**
     * 申请租户数据权限
     *
     * @param currentUser
     * @param param
     * @return
     */
    Boolean applyAuth(CurrentUser currentUser, TenantDataAuthParam param);

    /**
     * 审批授权
     *
     * @param currentUser
     * @param param
     * @return
     */
    Boolean approvalAuth(CurrentUser currentUser, ApprovalDataAuthParam param);

    /**
     * 终止授权
     *
     * @param param
     * @return
     */
    Boolean stopAuth(CurrentUser currentUser, ApprovalDataAuthParam param);

    List<TenantDataAuthVO> listDataAuth(CurrentUser currentUser);

    List<Integer> listTenantId(CurrentUser currentUser);
}
